<HTML
><HEAD
><TITLE
>Perl 6</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.57"><LINK
REL="NEXT"
TITLE="Tinkering with the development process"
HREF="x48.html"></HEAD
><BODY
CLASS="ARTICLE"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="ARTICLE"
><H1
><A
NAME="AEN1"
>Perl 6</A
></H1
><H2
>The story so far</H2
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN10"
>Why Perl 6</A
></H1
><P
>At TPC 4.0 ("The Perl Conference", run by O'Reilly and Associates in
July 2000) a meeting of Perl 5 developers decided it was time to
start planning for the next major version of Perl: Perl 6.</P
><P
>The reasons for this decision included:</P
><P
></P
><UL
><LI
><P
>Perl 5 internals are becoming increasingly difficult to maintain</P
></LI
><LI
><P
>Perl 6 offered a chance to improve the process by which
Perl itself is developed</P
></LI
><LI
><P
>Increasing "competition" from other languages
(particularly Java, PHP, and Python) prompts us to reassess Perl's
usefulness for real-world development</P
></LI
><LI
><P
>Perl 5 developers have been blessed with 20/20 hindsight
on some decisions (e.g. pseudo-hashes) and would welcome the chance to
make those decisions differently a second time</P
></LI
></UL
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN23"
>Constraints on Perl 5 (Larry's list)</A
></H2
><P
>Larry Wall (the founding father of Perl) offered the following list of
constraints he perceived on Perl 5, at a speech at the Atlanta Linux
Showcase in October 2000.  Emphasised phrases are Larry's; the plain text
parts are my own annotations of Larry's points.</P
><P
></P
><UL
><LI
><P
><I
CLASS="EMPHASIS"
>The need for backward compatibility:</I
>
Perl 5 attempted to be backward compatible with Perl 4, which attempted
to be backward compatible with Perl 3.  This leads to a situation where
legacy or deprecated language constructs are still supported, even if
they really should be thrown out.</P
></LI
><LI
><P
><I
CLASS="EMPHASIS"
>My leisurely mental growth: </I
>
Although most people would be stunned to hear Larry describe his mental
capacities as less than godlike, it is a fact that Perl 5 was Larry's
rewrite, and needed to fit within the scope of his comprehension.</P
></LI
><LI
><P
><I
CLASS="EMPHASIS"
>Cultural model with too many bottlenecks:</I
>
Perl 5 development centred around the perl5-porters mailing list
("p5p"), and was presided over by a single "pumpking" (project leader)
at any one time.  </P
></LI
><LI
><P
><I
CLASS="EMPHASIS"
>Lack of knowledge of the future: </I
>
When Perl 5 was first envisaged, the World Wide Web was only just
gaining in popularity, XML had never been heard of, and numerous other
technologies that we now take for granted were only a dim light on the
horizon.</P
></LI
><LI
><P
><I
CLASS="EMPHASIS"
>Lack of round tuition: </I
>
There were a lot of things that might have been done with Perl 5 if
Larry and/or the other developers had got a "round tuit".</P
></LI
><LI
><P
><I
CLASS="EMPHASIS"
>Complexity of the core: </I
>
Perl 5 was a significant departure from Perl 4, and introduced a lot of
new concepts.  The implementation of many of these turned out to be
quite complex, to the point where a potential Perl 5 developer may not
be able to understand it.</P
></LI
><LI
><P
><I
CLASS="EMPHASIS"
>Complacency: </I
>
At the outset of Perl 5, Perl was acknowledged as one of the best and
most widely used tools for toolsmithing on Unix systems, and for CGI
scripting for the World Wide Web.  For some years, Perl rested on its
laurels and failed to address new fields of programming as they rose in
prominence.</P
></LI
></UL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x48.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Tinkering with the development process</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>